/*
  将下面异步代码使用 Promise 的方法改进
  尽量用看上去像同步代码的方式
  setTimeout(function () {
    var a = 'hello'
    setTimeout(function () {
      var b = 'lagou'
      setTimeout(function () {
        var c = 'I ♥ U'
        console.log(a + b +c)
      }, 10)
    }, 10)
  }, 10)
*/

function sleep(value,arr=[]){
   return new Promise((resolve,reject) => {
        setTimeout(()=>{
            // console.log(value)
            try{
                arr.push(value)
                resolve(arr)
            }catch (e) {
                reject(e.message)
            }

        },10)
    })
}

function sleepGenerator(value){
    return arr => sleep(value,arr)
}

sleep('hello')
    .then(sleepGenerator('lagou'))
    .then(sleepGenerator('I ♥ U'))
    .then((res)=>{
        let total = ''
        res.map((item)=>{total+=item})
        console.log(total)
    })
